package IO;


/*
* 实现复制文件
* 将一个文件里的每一个字节都读出来，写入到另一个文件中
* */

import java.io.*;
import java.util.Scanner;

public class Demo19 {
    public static void main(String[] args) {
        // 1 . 输入路径，并且做校验
        Scanner scan = new Scanner(System.in);
        System.out.println("请输入要操作的源文件路径：");
        String scrPath = scan.next();
        File scrFile = new File(scrPath);
        if(!scrFile.isFile()){
            System.out.println("源文件路径有误！");
            return ;
        }

        System.out.println("请输入目标文件的路径:");
        String destPath = scan.next();
        File destFile = new File(destPath);
        if(!destFile.getParentFile().isDirectory()){
            System.out.println("目标文件路径有误！");
            return ;
        }

        // 2 . 执行复制的过程
        try(InputStream inputStream = new FileInputStream(scrFile);
            OutputStream outputStream = new FileOutputStream(destFile)){

            while(true){
                byte[] buffer = new byte[1024];
                int n = inputStream.read(buffer);
                System.out.println("n = " + n);

                //如果 n == -1 ，则代表读取完成
                if(n == -1){
                    break ;
                }
                //需要将 buffer 写入到 outputStream 中
                outputStream.write(buffer,0,n);
            }
        }catch(IOException e){
            e.printStackTrace();
        }
    }
}
